package com.weiyuwqj.server.mapper;

import com.weiyuwqj.api.model.BasItem;
import com.weiyuwqj.api.model.BusDebtInvest;
import com.weiyuwqj.api.model.vo.BusDebtInvestVO;
import com.weiyuwqj.api.model.vo.DebtDetailVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;
@Repository
public interface BusDebtInvestMapper extends Mapper<BusDebtInvest> {

    /**
     * 查询债权投资列表
     * @return
     */
    List<BusDebtInvestVO> getDebtInvestList(BusDebtInvest debtInvest);

    /**
     * 根据用户id查询可债权的记录
     * @param userId
     * @return
     */
    List<BusDebtInvestVO> getCanDebtInvestList(Integer userId);

    /**
     * 根据订单号查询单条记录
     * @param orderNo
     * @return
     */
    BusDebtInvest getDebtInvestByOrderNo(String orderNo);

    /**
     * 根据id修改是否已债权
     * @param newStatus
     * @param oldStatus
     * @param id
     * @return
     */
    Integer modifyDebtInvestStatusById(@Param("newStatus")Integer newStatus,@Param("oldStatus")Integer oldStatus,@Param("id")Integer id);

    //添加投资记录
    void insertDebtInvest(BusDebtInvest debtInvest);

    /**
     * 根据用户id查询所有债权的记录
     * @param userId 用户ID
     * @return 所有债券记录
     */
	List<BusDebtInvestVO> getAllDebtInvestList(@Param("userId") Integer userId);

    int updateFreezeOrderNoById(@Param(value = "freezeOrderNo") String freezeOrderNo, @Param(value = "debtInvestId") Integer debtInvestId);
    
    //根据debtInvestId 查询项目
    BasItem getItemById(@Param(value = "debtInvestId") Integer debtInvestId);
	/**
	 * 剩余未完成期数
	 *
	 * @param debtInvestId 债权ID
	 * @return 剩余未完成期数
	 */
	Integer getCollectListNotOverCount(@Param("debtInvestId") Integer debtInvestId);

    /**
     * 根据债权id查询信息
     * @param debtInvestId
     * @return
     */
    DebtDetailVo getDebtInvestByDebtInvestId(Integer debtInvestId);
}